4

镜像常用操作

提示有权限问题,请在命令前加sudo

操作 命令 举例 备注
登录docker hub docker login -u xxx -p xxx docker login -u 用户名 -p 密码
拉取镜像 docker pull NAME[:TAG] docker pull mysql:5.6
上传镜像 docker push NAME[:TAG] docker push mydocker:v1 先登录
查看本地镜像 docker images [-a/q] NAME docker images ubuntu a【全部】
q【只显示ID】
删除镜像 docker rmi [-f] IMAGE[:TAG] [IMAGE...] docker rmi mysql:5.6 redis f【强制删除】
标记镜像 docker tag SIMAGE TIMAGE docker tag ubuntu:18.10 cool/ubuntu:v1
导出镜像 docker save -o xxx.tar IMAGE[:TAG] [IMAGE...] docker save -o dockers.tar mysql redis:4.0 可以一次性导出多个镜像
导出镜像并压缩 docker save IMAGE[:TAG] [IMAGE...]|gzip > xxx.tar.gz docker save mysql:5.7 node:8 gzip > app.tar.gz
导入镜像 docker load [-i] xxx docker load -i xxx.tar
docker load<xxx.tar.gz
用于镜像备份

容器常用操作

操作 命令 举例 备注
创建容器 docker run/create [-i/d/t/p/v/-name/-link] IMAGE [COMMAND] docker run --name nginx -p 80:80 -v /data:/data --link redis:redis -d nginx:latest
docker run -it nginx:latest /bin/bash
it【以交互模式运行容器】
p【端口映射,格式为:主机(宿主)端口:容器端口】
--name【指定容器名称】
--link【链接其他容器】
d【后台运行容器】
v【文件映射 格式为 本地文件:容器文件】
create只是创建容器并不运行
启动/停止/重启容器 docker start/stop/restart CONTAINER [CONTAINER ...] docker start redis nginx
docker start 09b93464c2f7
可以使用容器名称或ID,支持一次操作多个容器
删除容器 docker rm [-f/v] CONTAINER [CONTAINER ...] docker rm nginx f【强制删除】
v【同时删除容器映射的本地文件或目录】
在容器中执行命令 docker exec -it CONTAINER /bin/bash docker exec -it 9df70f9a0714 /bin/bash
查看容器列表 docker ps [-a/n/q] docker ps
docker ps -aq
a【列出所有容器包括停止运行的容器】
n【列出最近创建的n个容器】
q【静默模式,只显示容器编号】
容器与主机之间的数据拷贝 docker cp SPATH DPATH docker cp /www/runoob 96f7f14e99ab:/www/
docker cp 96f7f14e99ab:/www /tmp/
不论容器是否在运行,都可拷贝成功
获取容器/镜像的元数据 docker inspect IMAGE/CONTAINER docker inspect mysql:5.6
连接到正在运行中的容器 docker attach CONTAINER docker attach --sig-proxy=false nginx --sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器
暂停/取消暂停容器 docker pause/unpause CONTAINER docker pause mysql
从容器创建一个新的镜像 docker commit [-a/c/m/p] CONTAINER IMAGE[:TAG] docker commit -a "我" -m "修改配置" a404c6c174a2 my-nginx:v1 a【镜像作者】
c【使用Dockerfile指令来创建镜像】
m【备注信息】
p【在commit时,将容器暂停】
导出容器 docker export [-o] CONTAINER docker export -o mysql.tar a404c6c174a2
导入容器镜像 docker import xxx.tar IMAGE[:TAG] docker import nginx-test.tar nginx:imp 使用此方式导入的镜像,镜像所有历史会丢失

docker环境日常维护快捷操作

操作 命令 备注
停止所有运行的容器 sudo docker stop $(sudo docker ps -q)
启动所有容器 sudo docker start $(sudo docker ps -aq)
删除所有容器 sudo docker stop $(sudo docker ps -q)&&sudo docker rm $(sudo docker ps -aq) 删除容器要确保容器处于停止状态
删除untagged images镜像 sudo docker rmi &dollar;(sudo docker images | grep "^<none>" | awk "{print $3}")
删除所有镜像 sudo docker rmi $(sudo docker images -q) 删除镜像要确保镜像没有被容器引用
查看容器IP端口 sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' 99c83edf2af1

codecook
56 声望1 粉丝